mysql新建分区设置阈值(less than)引发的问题 | 您所在的位置:网站首页 › less than less › mysql新建分区设置阈值(less than)引发的问题 |
mysql新建分表后,入库之前分表区间的数据,但是再分表中查询不到对应数据。 文章目录 问题背景问题解析新建分区sql查看分区查询数据查询数据所在分区 修改方案总结LESS THAN相关sql查询分区删除分区先建分区 问题背景初始化表的时候,先建的日期分区分2022年的表,新的一年需要重新建分表。在执行脚本后,建了2023年的12个分区。新增了1月份的数据后,入库成功,主表添加日期筛选可以查询全部数据,在1月分表中查询为空。 问题解析 新建分区sql ALTER TABLE fact_task_analyst ADD PARTITION (PARTITION fact_task_analyst_202301 VALUES LESS THAN (20230101)); ALTER TABLE fact_task_analyst ADD PARTITION (PARTITION fact_task_analyst_202302 VALUES LESS THAN (20230201)); 查看分区 SELECT * from information_schema.PARTITIONS where table_schema = schema() and table_name = 'fact_task_analyst'查询主表数据通过分区主键查询可以查到全部数据 使用EXPLAIN可以看到20230107的数据存在了202302的分分表,数量为124条。 把一月的分区的less than 改成20230201,改为一月的阈值。 ALTER TABLE fact_task_analyst ADD PARTITION (PARTITION fact_task_analyst_202301 VALUES LESS THAN (20230201)); ALTER TABLE fact_task_analyst ADD PARTITION (PARTITION fact_task_analyst_202302 VALUES LESS THAN (20230301));重新插入数据后,通过分表可以查询出来。 VALUES LESS THAN 分区最大值( “ |
CopyRight 2018-2019 实验室设备网 版权所有 |